package data;

public class demo05 {
    public static void main(String[] args) {
        int a = 9;
        int b = 2;

//        基础算术运算符
        System.out.println(a + b);  //加
        System.out.println(a - b);  //减
        System.out.println(a * b);  //乘
        System.out.println(a / b);  //除 输出结果为4  两个整数做除法结果还是整数
        System.out.println(1.0*a / b);   // 除  输出结果为4.5
        System.out.println(a % b);  //取余，只输出余数  输出结果为1

//        “+”做连接符的情况，能算则算，不能算就在一起
        System.out.println("abc" + a); //"abc9"
        System.out.println(a + 5);  //14
        System.out.println("idheima" + a +"a");  //"idheima9a"
        System.out.println(a + "a" + "idheima");  //"9aidheima"
        System.out.println(a + 'a' + "idheima");  //"106idheima"  与上个结果不同是因为a的引号不同，字符a的值是97，字符串a没有值

//        自增自减运算
        /*单独使用时加号和减号放在变量前后都可以
        自增自减智能操作变量，不能操作字面量 例如：2++;会报错！*/
        a++;  //a=a+1
        System.out.println(a);  //10
        ++b;  //b=b+1
        System.out.println(b);  //3
        a--;  //a=a-1
        System.out.println(a);  //9
        --b;  //b=b-1
        System.out.println(b);  //2

        /*当自增自减在表达式或同事有其他操作，符号放在自变量前后结果不同*/
        int i = 10;
        int rs = ++i;  //先加后用
        System.out.println(i);  //11
        System.out.println(rs);  //11

        int j = 10;
        int rs2 = j++;  //先用后加
        System.out.println(rs2);  //10
        System.out.println(j);  //11

        int m = 5;
        int n = 3;
        /*m:5 6 5 4
          n:3 4 3
          result:      6 -   5 + 5   -   4 + 4   + 3*/
        int result = ++m - --m + m-- - ++n + n-- + 3;
        System.out.println(result);  //9
        System.out.println(m);  //4
        System.out.println(n);  //3

//        扩展赋值运算(加减乘除取余都可以用，且形式相同）
        double s1 = 9.5;
        double s2 = 520;
        s1 += s2;  //s1 = (double)(s1+s2)
        System.out.println(s1);  //529.5

        int s3 = 10;
        int s4 = 5;
        s3 -= s4;  //s3 = (int)(s3-s4)
        System.out.println(s3);  //5

        byte q1 = 20;
        byte q2 = 40;
        //q1 = q1 +q2;这是错的，需要int类型
        q1 += q2;  //q1 = (byte)(q1+q2)进行强转化
        System.out.println(q1);  //60
    }
}
